package carmensd.vista

import applicationModel.ExpedienteAppModel
import applicationModel.LugarAppModel
import applicationModel.ResolverMisterioAppModel
import carmensd.vista.expedienteYvillanos.AsistenteDeContenidos
import carmensd.vista.expedienteYvillanos.ExpedienteDelJuegoWindow
import modelo.Lugar
import org.uqbar.arena.widgets.Button
import org.uqbar.arena.widgets.Panel
import org.uqbar.arena.windows.Dialog
import org.uqbar.arena.windows.Window
import org.uqbar.arena.windows.WindowOwner
import applicationModel.MapaMundiAppModel
import applicationModel.ViajarAppModel

class ResolverMisterioWindow extends Dialog<ResolverMisterioAppModel> {

	new(WindowOwner owner, ResolverMisterioAppModel model) {
		super(owner, model)
	}

	def abrirExpedienteWindow() {
		this.openSimpleWindow(new ExpedienteDelJuegoWindow(this, new ExpedienteAppModel(modelObject.expedienteDelJuego)))
	}

	def abrirVisitandoLugarWindow(Lugar lugarquevoyaVisitar) {
		this.openSimpleWindow(new VisitandoLugarWindow(this, new LugarAppModel(lugarquevoyaVisitar)))
	}

	def abrirViajarWindow() {
		this.openSimpleWindow(new ViajarWindow(this, new ViajarAppModel(modelObject.detectiveACargo.estoyPais)))
	}

	def obtenerLugar(int numeroDelLugar) {

		this.modelObject.detectiveACargo.estoyPais.lugaresElegidos.get(numeroDelLugar)
	}

	def openSimpleWindow(Window w) {
		w.open
	}

	override protected createFormPanel(Panel panel) {
		this.setTitle("Resolviendo:" + modelObject.caso.nombreCaso)

		AsistenteDeContenidos.colocarTextoSimple(panel, "Estas en:")
		AsistenteDeContenidos.colocarTextoConValueBindeado(panel, "detectiveACargo.estoyPais.nombre")

		new Button(panel) => [
			caption = "Orden de Arresto"
		//			onClick [|abrirOrdenDeArrestoWindow]
		]

		new Button(panel) => [
			caption = "Viajar"
			onClick [|abrirViajarWindow]
		]

		new Button(panel) => [
			caption = "Expediente"
			onClick [|abrirExpedienteWindow]
		]

		AsistenteDeContenidos.colocarTextoSimple(panel, "Lugares")

		new Button(panel) => [
			bindCaptionToProperty("primerLugar.nombreLugar")
			onClick [|this.abrirVisitandoLugarWindow(modelObject.primerLugar)]
		]

		new Button(panel) => [
			bindCaptionToProperty("segundoLugar.nombreLugar")
			onClick [|this.abrirVisitandoLugarWindow(modelObject.segundoLugar)]
		]

		new Button(panel) => [
			bindCaptionToProperty("tercerLugar.nombreLugar")
			onClick [|this.abrirVisitandoLugarWindow(modelObject.tercerLugar)]
		]

	}

}
